这是关于根据XML模式(例如:schemafile.xsd)验证XML文件(例如:marshalledfile.xml)。我们正在使用jaxb将java对象编码到xml文件中。最好的方法是什么?谁能举个简单的例子说明如何做?感谢您的帮助。谢谢,阿洛 最佳答案 您可以直接在Marshaller中设置Schema。首先,您需要创建一个Schema实例(javax.xml.validation包):SchemaFactoryfactory=SchemaFactory.newInstance(XMLConstants.W3C_XML_SCH
我一直在思考使用Dataset中的数据并根据XML架构规则创建XML文件的最佳方式。我一直在四处搜索,但未能找到一种方法,我只从数据集中获取数据并将其放入XML标记中,标记由已经存在的模式定义。所以它可能是这样的:1-创建数据集并用数据填充其行。2-根据XML模式规则创建XML。3-用来自数据集的数据填充所述XML文件,这样数据来自数据集,而XML文件的结构来自XML模式。 最佳答案 您可以使用数据集writexml方法或writexmlschema方法。更多内容可在MSDNhttp://msdn.microsoft.com/en-
我的要求是我需要在xsd标签元素/属性名称中有一个分号。例如:有没有办法转义属性名称中的':'字符?问候, 最佳答案 首先,冒号和分号是非常不同的东西:你想要哪个?冒号在XML名称中是合法的,分号不是。XML名称中的冒号表示命名空间。您需要在模式文档中定义元素和属性,其目标命名空间是元素或属性名称的命名空间部分。在该架构文档(例如Doc-S)中,您仅使用名称的局部部分声明元素或属性。因此,如果“some”是绑定(bind)到URIhttp://some.uri的命名空间前缀,您使用targetNamespace="http://so
我需要从XML文件创建java模型类(绑定(bind)类)。不幸的是我没有XSD架构。已有许多XML。奇怪的是,Castor或JAXB都使用XSD架构来生成绑定(bind)模型类。如果您没有模式怎么办?并非所有XML都是使用Schema创建的! 最佳答案 您可以使用架构推理工具,例如Trang.它可以从xml生成xsd。然后您可以调整生成的模式或直接将其提供给JAXB/Castor等。 关于java-使用没有XSD模式文件的XML文件生成java绑定(bind)类?使用任何Castor或
我得到了以下架构:哪个有效,但我不想限制元素的顺序。我尝试了xs:all但它不允许delta的maxOccurs=unbounded,这是必须的。所有其他元素只出现一次,所以xs:all在这里不会有问题。有没有一种方法可以定义元素的随机顺序,同时允许无限数量的delta? 最佳答案 XSD1.1允许您寻找的东西:xs:all在每个元素粒子上都有一个maxOccurs。 关于XML架构maxOccurs和xs:all,我们在StackOverflow上找到一个类似的问题:
如何在Java中处理不断变化的XML模式?我有一个用例,我必须在Java应用程序中支持一组旧的和不断发展的XML模式(即支持Foov1、v2、v3、v4、v5)。我的用例包括-读取针对不同版本的FooXML模式编写的所有FooXML内容-合并可以使用不同版本的OVALXML模式编写的FooXML内容(即合并Foov1和Foov5)。FooXML模式相当复杂,并且存在已知的向后兼容性问题,因此Foov1XML内容可能无法通过使用Foov3XML模式的XML模式验证。我想到了两种方法1)使用JAXB等JavaXML数据绑定(bind),为每个版本的XML模式生成一组绑定(bind)。以Fo
有没有办法在XML模式中指定列表的元素必须按某些文本节点排序?例如:我想制作一个以下xml有效的xsd:1lsuarez3dforlan7ecavanni但下面不是:7ecavanni1lsuarez3dforlan也就是说,集合中的元素显示为按User.Id排序 最佳答案 添加到MS-McQ的回答:特别是在XSD1.1中,您需要对Users元素的复杂类型进行断言,形式为test="every$uinUsersatisfiesnot($u/Idle$u/preceding-sibling::User[1]/Id)"注意事项:断言不能
我正在实现IXmlSerializable对于我的类的自定义(反)序列化逻辑,但希望根据XSD模式检查XML的读写。我添加了XmlSchemaProviderAttribute:[XmlSchemaProvider("ConfigSchema")][XmlRoot("Config")]publicclassConfig{//properties,fieldsandmethodsincl.interfacemethodspublicstaticXmlQualifiedNameConfigSchema(XmlSchemaSetxs){conststringxsdPath="./Config
我正在处理一个XML作业,但我不确定我是否正确地完成了这部分工作。它要求:•grantType,基于ID数据类型并遵循正则表达式模式“[A-Z]{6}-\d{4}-\d{2}”•fundingType基于字符串数据类型并限于以下值:联邦、州、地方和私有(private)让我失望的部分是当它要求遵循正则表达式模式时,我应该输入reg模式还是应该像下面那样?这是我目前所拥有的:NIHClinicalCancerBasicResearchGrantNationalInstituteofHealthUniversityHospitalClinicalCancerCenterBasicNIHsu
我正在尝试理解XSD模式。我无法发布原始架构,但大致如下。我遇到的问题是我不明白为什么同一个命名空间(http://www.test.com/test)被引用两次,一次有前缀,一次没有前缀。这有效吗?如果是,它的用途是什么?此外,在为此XSD生成XML时,我是否使用前缀? 最佳答案 没有前缀的命名空间成为默认命名空间,所以它下面的所有元素自动属于该命名空间,除非它们被明确地限定。现在是带前缀的命名空间——我看不出有任何理由不允许它。至于它的目的,我不确定,但我猜想它可能与层次结构中其他覆盖命名空间的可能性有关?我想再次强调,这是猜测